
using System;
using System.Data;
using System.Linq;
using System.Linq.Dynamic;
using System.Linq.Dynamic.Core;
using System.Linq.Expressions;
using System.Threading.Tasks;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;

using Abp.UI;
using Abp.AutoMapper;
using Abp.Authorization;
using Abp.Linq.Extensions;
using Abp.Domain.Repositories;
using Abp.Application.Services;
using Abp.Application.Services.Dto;


using JYJ.AiYard.PhoneBooks.Books.Dtos;
using JYJ.AiYard.PhoneBooks.Books;

namespace JYJ.AiYard.PhoneBooks.Books
{
    /// <summary>
    /// Books应用层服务的接口方法
    ///</summary>
    public interface IBooksAppService : IApplicationService
    {
        /// <summary>
        /// 获取Book的分页列表信息
        ///</summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<PagedResultDto<BookListDto>> GetPagedBook(GetBooksInput input);


        /// <summary>
        /// 通过指定id获取BookListDto信息
        /// </summary>
        Task<BookListDto> GetBookById(EntityDto<long> input);


        /// <summary>
        /// 返回实体的EditDto
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<GetBookForEditOutput> GetBookForEdit(NullableIdDto<long> input);


        /// <summary>
        /// 添加或者修改Book的公共方法
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task CreateOrUpdateBook(CreateOrUpdateBookInput input);


        /// <summary>
        /// 删除Book信息的方法
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task DeleteBook(EntityDto<long> input);


        /// <summary>
        /// 批量删除Book
        /// </summary>
        Task BatchDeleteBook(List<long> input);


        /// <summary>
        /// 导出Book为excel表
        /// </summary>
        /// <returns></returns>
        //Task<FileDto> GetBookToExcel();
		
				
		//// custom codes
		// TODO 自定义代码

		// TODO 自定义代码

		// TODO 自定义代码

		// TODO 自定义代码

		
		
		
		//// custom codes end

    }
}
